home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 1997 November & December
/
Amiga-CD 1997 #11-12.iso
/
pd-disketten
/
ungepackt
/
8_95
/
apd-8-95-2
/
arexx kurs
/
arexxmanager2.1.rx
/
resourcemanager2.1
< prev
next >
Wrap
Text File
|
1996-01-25
|
11KB
|
305 lines
/* ArexxResourceManager 2.1 programmed by Karsten Wysocki 01.03.94 */
call addlib("rexxsupport.library",0,-30,0)
call addlib("apig.library",0,-30,0)
call SET_APIG_GLOBALS()
portname = "ResourceManager"
portlist = Showlist('p')
if find(portlist,portname) > 0 then exit
p = openport(portname)
scr = LOCKPUBSCREEN("Workbench")
scrvinfo = GETVISUALINFO(scr)
scrfont = GETVALUE(scr,40,4,'p')
glistpointer = ALLOCVEC(4,MEMF_CLEAR)
conxgad = CREATECONTEXT(glistpointer)
previousgadget = conxgad
filereq = "freq = ALLOCFILEREQUEST();
filename = REQUESTFILE(freq,0,0,hail,'LIBS:','',0,0,
null(),-10,-2,200,211,'22200a22'x);
call FREEFILEREQUEST(freq)"
showlist= "do forever;
pos = index(list,' ');
if pos = 0 then leave;
list = insert('0a'x,list,pos);
list = delstr(list,pos,1);
end;
call open('list','RAM:List','W');
call writeln('list',list);
call close('list');
list = '';
if wtext = 'Show Libs';
then do;
ADDRESS COMMAND 'copy ram:list ram:list1';
end;
else do;
ADDRESS COMMAND 'sort ram:list ram:list1';
end;
line = 0;
linemax = 16;
page = 1;
lastpage = 0;
list.page = '';
call open('list1','RAM:List1','R');
do until eof('list1');
if line = linemax;
then do;
line = 0;
page = page + 1;
list.page = '';
end;
listln = readln('list1');
list.page = list.page || listln || '0a'x;
line = line + 1;
end;
call close('list1');
lastpage = page;
page = 1;
if length(list.lastpage) = 1;
then do;
list.lastpage = '';
lastpage = lastpage - 1;
end;
if lastpage < 2;
then do;
list.page = left(list.page,length(list.page)-1);
if line = 0 then list.page = left(list.page,length(list.page)-1);
rtext = hline || '0a0a'x || list.page;
x = easyrequest(w1,wtext,rtext,'OK');
end;
else do;
do forever;
list = left(list.page,length(list.page)-1);
if page = lastpage then list = left(list,length(list)-1);
rtext = hline || ' Page ' || page || ' of ' || lastpage
|| '0a0a'x || list;
x = easyrequest(w1,wtext,rtext,'OK|Prev|Next');
if x = 1 then leave;
if x = 2 & page > 1 then page = page - 1;
if x = 0 & page < lastpage then page = page + 1;
end;
end;"
makegadget = "call SETNEWGADGET(newgadx,scrvinfo,scrfont,lft,top,wdt,hgt
,txt,PLACETEXT_IN,gnr,null());
previousgadget = CREATEGADGET(BUTTON_KIND,previousgadget,
newgadx,TAG_DONE,0)"
traceon = 10
traceoff = 15
addlib = 20
remlib = 25
showlibs = 30
showclips = 35
showports = 40
showfiles = 45
showready = 50
showwaiting = 55
lft = 6
top = 2
wdt = 75
hgt = 14
gnr = traceon
txt = "Trace ON"
newgadx = MAKENEWGADGET(scrvinfo,scrfont,lft,top,wdt,hgt,txt ,
,PLACETEXT_IN,traceon,null())
previousgadget = CREATEGADGET(BUTTON_KIND,previousgadget,newgadx,TAG_DONE,0)
lft = 85
wdt = 73
gnr = addlib
txt = "Add Lib"
interpret makegadget
lft = 161
gnr = showlibs
txt = "Libs"
interpret makegadget
lft = 237
gnr = showports
txt = "Ports"
interpret makegadget
lft = 313
gnr = showready
txt = "Ready"
interpret makegadget
lft = 6
top = 18
wdt = 75
hgt = 14
gnr = traceoff
txt = "Trace OFF"
interpret makegadget
lft = 85
wdt = 73
gnr = remlib
txt = "Rem Lib"
interpret makegadget
lft = 161
gnr = showclips
txt = "Clips"
interpret makegadget
lft = 237
gnr = showfiles
txt = "Files"
interpret makegadget
lft = 313
gnr = showwaiting
txt = "Waiting"
interpret makegadget
wintitle = "ResourceManager2.1"
winidcmp = CLOSEWINDOW+GADGETUP+GADGETDOWN+MOUSEMOVE
winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWDEPTH+GIMMEZEROZERO+ACTIVATE
w1 = OPENWINDOW(portname,200,9,400,47,2,4,winidcmp,winflags,wintitle,scr,0,null(),null(),conxgad)
call GT_REFRESHWINDOW(w1,null())
rpw1 = GETWINDOWRASTPORT(w1)
exitme = 0
do forever
x = waitpkt(portname)
do forever
msg = getpkt(portname)
if msg = '0000 0000'x then leave
msgclass = getarg(msg,0)
if msgclass = DIE then exitme = 1
if msgclass = CLOSEWINDOW then exitme = 1
if msgclass = GADGETUP
then do
gadid = getarg(msg,9)
select
when gadid = traceon
then do
ADDRESS COMMAND 'SYS:REXXC/TCO'
end
when gadid = traceoff
then do
ADDRESS COMMAND 'SYS:REXXC/TCC'
end
when gadid = addlib
then do
filename = ""
hail = "Select Arexx-library to add"
interpret filereq
lsign = substr(filename,length(filename),1)
if filename ~= null() & lsign ~= "/" & lsign ~= ":"
then do
devname = left(filename,5)
if devname = "LIBS:" then
filename = right(filename,length(filename)-5)
upfilename = upper(filename)
liblist = upper(show(l))
if find(liblist,upfilename) > 0
then do
wtext = "Cannot add Lib!!! "
gtext = " OK "
rtext = "Lib is already added:" || '0a0a'x || filename
x = easyrequest(w1,wtext,rtext,gtext)
end
else do
call addlib(filename,0,-30,0)
end
end
end
when gadid = remlib
then do
filename = ""
hail = "Select Arexx-library to remove"
interpret filereq
lsign = substr(filename,length(filename),1)
if filename ~= null() & lsign ~= "/" & lsign ~= ":"
then do
devname = left(filename,5)
if devname = "LIBS:" then
filename = right(filename,length(filename)-5)
upfilename = upper(filename)
liblist = upper(show(l))
if upfilename = "APIG.LIBRARY" | upfilename = "REXXSUPPORT.LIBRARY" | find(liblist,upfilename) = 0
then do
wtext = "Cannot remove this lib!!!"
gtext = " OK "
rtext = "Lib in use or not added:" || '0a0a'x || filename
x = easyrequest(w1,wtext,rtext,gtext)
end
else do
call remlib(filename)
end
end
end
when gadid = showlibs
then do
list = show(l)
wtext = "Show Libs"
hline = "Actually added libs" || '0a'x || "in order of search:"
interpret showlist
end
when gadid = showclips
then do
list = show(c)
wtext = "Show Clips"
hline = "Actually Clip-List:"
interpret showlist
end
when gadid = showports
then do
list = showlist('p')
wtext = "Show Ports"
hline = "Available Ports:"
interpret showlist
end
when gadid = showfiles
then do
list = show('f')
wtext = "Show Files"
hline = "Actually opened logical files:"
interpret showlist
end
when gadid = showready
then do
list = showlist('r')
wtext = "Show Ready"
hline = "Ready:"
interpret showlist
end
when gadid = showwaiting
then do
list = showlist('w')
wtext = "Show Waiting"
hline = "Waiting:"
interpret showlist
end
otherwise nop
end
end
x = reply(msg,0)
end
if exitme = 1 then leave
end
call CLOSEWINDOW(w1)
call UNLOCKPUBSCREEN(null(),scr)
call FREEVISUALINFO(scrvinfo)
call FREEGADGETS(conxgad)
call FREETHIS(newgadx)
call FREEVEC(glistpointer)
ADDRESS COMMAND 'SYS:REXXC/TCC'
exit